﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请选择你要的服务");
            Console.WriteLine("a 点菜     b 传菜");
            string a = Console.ReadLine();
            switch (a)
            {
                case "a":
                    CookRobot c = new CookRobot("点菜");
                    c.Working();
                    break;
                case "b":
                    DeliveryRobot d = new DeliveryRobot("传菜");
                    d.Working();
                    break;
                default:
                    break;
            }
            Console.ReadKey();

        }
//编写一个程序，以实现机器人的层次结构，此层次结构将至少包含抽象类机器人类Robot、炒菜机器人类CookRobot、传菜机器人类DeliveryRobot。
//Robot类应包含机器人姓名name字段、机器人工作的方法Working()，该方法应该在子类中被实现，
 //机器人工作的方式很多，所以Working()方法应该被定义为抽象方法。
//可以在CookRobot中添加一个代表菜的类型的字段，用枚举类型；在DeliveryRobot中添加一个代表连续工作时长的字段hours。
//CookRobot和DeliveryRobot应实现具体的Working()方法。
//在主类中定义一个方法，形参数据类型是string，返回值数据类型是Robot，方法中实现如果传入的字符串是“炒菜”，
//那就返回CookRobot的实例（当然是要用Robot的引用指向的），如果传入的字符串是“传菜”，那就返回DeliveryRobot的实例。
//Main方法中：用户输入所选择的机器人的功能，根据用户的输入Robot执行对应的功能。
    }
    abstract class Robot //抽象类机器人
    {
        private string name;
        public string Name {
            get { return this.name; }
            set { this.name = value; }
        }
        public abstract void Working();

        public Robot() { }
        public Robot(string name) {
            this.name = name;
        }

    }
    class CookRobot : Robot //炒菜机器人类
    {
        enum menua
        { 
            蓝莓奶酪,
            烤鲱鱼罐头,
            黑布林大李子,
            烤榴莲
        }
        
        public override void Working()
        {
            Console.WriteLine("{0}很高兴为你服务，请点餐",Name);

        }
        public CookRobot(string name):base(name) {
            this.Name = name;
        }
    }

    class DeliveryRobot: Robot //传菜机器人类
    {
        public int hours=0;
        public override void Working()
        {
            Console.WriteLine("现在开始上菜");
            Console.WriteLine("你点的《烤榴莲烤》来了，祝你用餐愉快！");
            hours++;
            Console.WriteLine("{1}已工作{0}个小时了，可以让他休息一下吗？",hours,this.Name);
        }
        public DeliveryRobot(string name):base(name)
        {
        }
    }








}
